1. Field of the Invention
The present invention relates generally to a method and apparatus for correcting data errors and, more particularly, to a method and apparatus for correcting errors in data recorded on a recording medium.
2. Description of the Related Art
In the case of using a recording medium having an increased record capacity, such as an optical disk, fast reading of data from the recording medium is demanded. For faster reading of data from the recording medium, the time required for error correction of read data should be shortened. To shorten this processing time, it is necessary to quickly access a buffer memory where data is to be stored.
An error correcting code (ECC) is affixed to data when the data is to be recorded on a recording medium. As shown in FIG. 1, for example, a block data 11, which includes a data portion 12 and first and second ECCs 13 and 14, is recorded on a recording medium. The data portion 12 includes plural pieces of data in a matrix form. Each of the first and second ECCs 13 and 14 includes plural pieces of correcting code data in a matrix form. The first ECC 13 is affixed to each column of data in the data portion 12. The second ECC 14 is affixed to each row of data in the data portion 12 and the first ECC 13.
A data reading apparatus is equipped with a controller which controls the input/output access of data to a recording medium. The controller has an error correcting circuit for correcting an error in the block data 11. The error correcting circuit receives each row of data in each of the data portion 12 and the first and second ECCs 13 and 14 a byte at a time, and performs a predetermined arithmetic operation on the data. Based on the result of the arithmetic operation, an error contained in each row of data is corrected. Further, the error correcting circuit receives each column of data in each of the data portion 12 and the first ECC 13, a byte at a time, and performs a predetermined arithmetic operation on the data. Based on the result of that operation, an error contained in each column of data is corrected.
Since powerful error correction using all of the data portion 12 and the first and second ECCs 13 and 14 is carried out, the error correction requires a buffer memory having a large memory capacity. The error correcting circuit receives data read from the buffer memory and executes error correction on the data to yield error-corrected data. The error-corrected data is temporarily stored in the buffer memory. The error-corrected data read from the buffer memory is thereafter supplied to a host computer.
As the processing speed of host computers increases, faster reading/writing of data from/to a buffer memory is demanded. For instance, by using a high-speed host computer, data is read from an optical disk at a high speed while rotating the optical disk at a speed four times the normal speed.
Such high-speed reading, however, requires fast access to a buffer memory. Access to the buffer memory for reading data therefrom and access to the buffer memory for writing error-corrected data therein both occurring repeatedly in units of individual bytes, consumes a large amount of time. Such numerous accesses to the buffer memory makes it difficult to shorten the error correcting time. Thus, there is a need for improved techniques to perform error correction on data read from a recording medium.